import { defineConfig } from '@playwright/test';

export default defineConfig({
  testDir: './tests',
  fullyParallel: true,
  workers: process.env.CI ? 2 : undefined,
  retries: 1,

  // 每个测试用例最多 300 秒（5分钟）
  timeout: 300_000,

  // 整个测试批次最多 600 秒（10 分钟）
  globalTimeout: 600_000,

  expect: { timeout: 4_000 },

  reporter: [
    ['list'],
    ['html', { outputFolder: 'playwright-report', open: 'never' }],
  ],

  // 失败截图/视频/trace 等产物保存到这里
  outputDir: 'test-results',

  use: {
    baseURL: process.env.BASE_URL || 'http://localhost:5174',
    headless: true,
    actionTimeout: 4_000,       // 单次操作 4 秒
    navigationTimeout: 10_000,  // 跳转 10 秒
    trace: 'on-first-retry',
    screenshot: 'only-on-failure',
    video: 'retain-on-failure',
  },
});
